package com.dhcc.bpm.modules.api.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import org.springblade.core.mp.base.Excel;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;

import java.util.Date;

/**
 * @ClassName Product
 * @Description 产品表实体类
 * @Author daina
 * @Date 2020/2/25 15:22
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
@Data
@TableName("opc_product")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Product对象", description = "产品表")
public class Product extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	* 名称
	*/
	@ApiModelProperty(value = "名称")
	@Excel(name = "产品名称")
	private String productName;
	/**
	 * 英文名称
	 */
	@ApiModelProperty(value = "英文名称")
	@Excel(name = "英文名称")
	private String productEname;
	/**
	* 编号
	*/
	@ApiModelProperty(value = "编号")
	@Excel(name = "编号")
	private String productCode;
	/**
	* 产品版本
	*/
	@ApiModelProperty(value = "产品版本")
	@Excel(name = "产品版本")
	private String productVersion;
	/**
	* 权限等级
	*/
	@ApiModelProperty(value = "权限等级")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "开放等级")
	private Integer privilegeLevel;
	/**
	* 父ID
	*/
	@ApiModelProperty(value = "父ID")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
//	@Excel(name = "父ID")
	private Long pid;
	/**
	* 产品发布时间
	*/
	@ApiModelProperty(value = "产品发布时间")
	@Excel(name = "产品发布时间")
	private Date releaseTime;
	/**
	* 所属系统
	*/
	@ApiModelProperty(value = "所属系统")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "所属系统")
	private Long opcSysId;
	/**
	 * 是否收费
	 */
	@ApiModelProperty(value = "是否收费")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否收费")
	private int isCost;
	/**
	* 描述
	*/
	@ApiModelProperty(value = "描述")
	@Excel(name = "描述")
//	@TableField(value = "`describe`")
	private String describe;
	/**
	 * 每秒处理请求数量
	 */
	@JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
	@Excel(name = "每秒处理请求数量")
	private String replenishRate;
	/**
	 * 令牌桶容量
	 */
	@JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
	@Excel(name = "令牌桶容量")
	private String burstCapacity;
	/**
	 * 业务主键
	 */
	@ApiModelProperty(value = "业务主键")
	@Excel(name = "业务主键")
	private String busPrimarykey;

	/**
	 * 租户ID
	 */
	@ApiModelProperty(value = "租户ID")
	@Excel(name = "租户ID")
	private String tenantId;


	/**
	 * 启停状态
	 */
	@ApiModelProperty(value = "启停状态")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "启停状态")
	private int productStatus;

	/**
	 * 是否推荐
	 */
	@ApiModelProperty(value = "是否推荐")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否推荐")
	private Integer isRecommend;

	/**
	 * 推荐说明
	 */
	@ApiModelProperty(value = "推荐说明")
	@Excel(name = "推荐说明")
	private String recommendDescribe;

	/**
	 * 审批状态
	 */
	@ApiModelProperty(value = "审批状态")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "审批状态")
	private Integer status;

	/**
	 * 是否已升级
	 */
	@ApiModelProperty(value = "是否已升级")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否已升级")
	private Long isUpgrade;
	/**
	 * 升级描述 update_des
	 */
	@ApiModelProperty(value = "升级描述")
	@Excel(name = "升级描述")
	private String updateDes;

	/**
	 * 文档文件
	 */
	@ApiModelProperty(value = "文档文件")
	@Excel(name = "文件路径")
	private String filePath;

	/**
	 * 导出数据标识
	 */
	@ApiModelProperty(value = "导出数据标识")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private String expSeq;
	/**
	 * 类别 1 内部 2外部
	 */
	@ApiModelProperty(value = "类别")
	@Excel(name = "类别")
	private Integer productType;

	/**
	 * 目标客户描述
	 */
	@ApiModelProperty(value = "目标客户描述")
	@Excel(name = "目标客户描述")
	private String customerDes;
}
